"""
城市旅游景点查询
使用CommaSeparatedListOutputParser，输出格式为 ['武侯祠', '杜甫草堂', '锦里古街']
1.创建大模型对象
2.创建消息模板 定义变量 city top parser_format
3.构建输出解析对象CommaSeparatedListOutputParser，
并通过list_output_parser.get_format_instructions()得到示例信息
4.创建对象
5.调用连的invoke方法  传递信息模型需要三个参数 city top parser_format
"""
from model_utils import getLLM
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import CommaSeparatedListOutputParser
llm = getLLM()

template = ChatPromptTemplate.from_messages([
    ("system","你是一个城市旅游咨询助手,用中文回答,输出格式{format_eg}"),
    ("human","列出{city}城市热门{top}景点")
])

parser = CommaSeparatedListOutputParser()
format_eg = parser.get_format_instructions()
print(format_eg)

chain = template | llm | parser

r = chain.invoke({"city":"成都","top":5,"format_eg":format_eg})
print(r)